package com.dynabook.ems.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dynabook.ems.model.entity.EmsBomDetail;
import com.dynabook.ems.model.vo.WorkOrderBomDetailVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
* @author tester
* @description 针对表【ems_bom_detail】的数据库操作Mapper
* @createDate 2025-07-21 15:20:05
* @Entity com.dynabook.ems.model.entity.EmsBomDetail
*/
public interface EmsBomDetailMapper extends BaseMapper<EmsBomDetail> {

    /**
     * 分页查询工单下的BOM详细信息
     * @param page 分页参数
     * @param workOrderNumber 工单号
     * @return 工单BOM详细信息分页列表
     */
    Page<WorkOrderBomDetailVO.WorkOrderBomDetailItem> pageBomDetailByWorkOrderNumber(
            Page<WorkOrderBomDetailVO.WorkOrderBomDetailItem> page, 
            @Param("workOrderNumber") String workOrderNumber);
            
    /**
     * 根据工单号查询BOM基本信息（不分页）
     * @param workOrderNumber 工单号
     * @return BOM基本信息
     */
    WorkOrderBomDetailVO getBomBasicInfoByWorkOrderNumber(@Param("workOrderNumber") String workOrderNumber);
    
    /**
     * 根据工单号获取所有详情ID
     * @param workOrderNumber 工单号
     * @return 详情ID列表
     */
    List<String> getDetailIdsByWorkOrder(@Param("workOrderNumber") String workOrderNumber);
    
    /**
     * 根据详情ID获取详情状态
     * @param detailId 详情ID
     * @return 详情状态
     */
    Integer getDetailStatusById(@Param("detailId") String detailId);
    
    /**
     * 根据详情ID获取工单号
     * @param detailId 详情ID
     * @return 工单号
     */
    String getWorkOrderNumberByDetailId(@Param("detailId") String detailId);
}




